package com.itheima.d4_file;

import java.io.File;
import java.io.UnsupportedEncodingException;
import java.text.SimpleDateFormat;

/**
     目标：掌握File提供的判断文件类型、获取文件信息功能
 */
public class FileTest2 {
    public static void main(String[] args) throws UnsupportedEncodingException {
        // 1.创建文件对象，指代某个文件
        File f1 = new File("day08map-stream-app/Hello.txt"); //文件
        File f2 = new File("day08map-stream-app/abc"); //目录、文件夹
        File f3 = new File("day08map-stream-app/诛仙.txt"); //不存在

        // 2、public boolean exists()：判断当前文件对象，对应的文件路径是否存在，存在返回true.
        System.out.println("f1.exists() = " + f1.exists()); //true
        System.out.println("f2.exists() = " + f2.exists()); //true
        System.out.println("f3.exists() = " + f3.exists()); //false

        // 3、public boolean isFile() : 判断当前文件对象指代的是否是文件，是文件返回true，反之。
        System.out.println("f1.isFile() = " + f1.isFile()); //true
        System.out.println("f2.isFile() = " + f2.isFile()); //false
        System.out.println("f3.isFile() = " + f3.isFile()); //false

        // 4、public boolean isDirectory()  : 判断当前文件对象指代的是否是文件夹，是文件夹返回true，反之。
        System.out.println("f1.isDirectory() = " + f1.isDirectory()); //false
        System.out.println("f2.isDirectory() = " + f2.isDirectory()); //true
        System.out.println("f3.isDirectory() = " + f3.isDirectory()); //true

        // 5.public String getName()：获取文件的名称（包含后缀）
        System.out.println("f1.getName() = " + f1.getName()); //Hello.txt
        System.out.println("f2.getName() = " + f2.getName()); //abc
        System.out.println("f3.getName() = " + f3.getName()); //诛仙.txt

        // 6.public long length()：获取文件的大小，返回字节个数
        System.out.println("f1.length() = " + f1.length()); //16 ---> 16个字节（文件的大小）
        System.out.println("f2.length() = " + f2.length()); //64      1024 2048 ---> 不是文件夹中所有子文件的大小和
        System.out.println("f3.length() = " + f3.length()); //0 ---> 不存在

        // 7.public long lastModified()：获取文件的最后修改时间。 （毫秒时间）
        showDate(f1.lastModified()); //2023-03-06 20:04:37
        showDate(f2.lastModified()); //2023-03-06 20:17:30
        showDate(f3.lastModified()); //1970-01-01 08:00:00

        // 8.public String getPath()：获取创建文件对象时，使用的路径
        System.out.println("f1.getPath() = " + f1.getPath()); //f1.getPath() = day08map-stream-app/Hello.txt
        File f4 = new File("/Users/xi./Documents/黑马/code/JavaSE156/day08map-stream-app/Hello.txt");
        System.out.println("f4.getPath() = " + f4.getPath()); ///Users/xi./Documents/黑马/code/JavaSE156/day08map-stream-app/Hello.txt

        // 9.public String getAbsolutePath()：获取绝对路径
        System.out.println("f1.getAbsolutePath() = " + f1.getAbsolutePath()); ///Users/xi./Documents/黑马/code/JavaSE156/day08map-stream-app/Hello.txt
    }

    public static void showDate(long time) {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        System.out.println(sdf.format(time));
    }

}
